From: Volodymyr Babchuk Date: Tue, 10 Oct 2017 15:52:51 +0000 (+0300) Subject: public: add and enable XENFEAT_ARM_SMCCC_supported feature X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~1115 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=a02bb8da9397d4d949dd74dbe5a7d850becd5736;p=xen.git public: add and enable XENFEAT_ARM_SMCCC_supported feature This feature indicates that hypervisor is compatible with ARM SMC calling convention. Previously hypervisor would inject an undefined instruction exception if an invalid SMC function were called or would crash a domain if an invalid HVC function were invoked. XENFEAT_ARM_SMCCC_supported feature means that it safe to invoke SMC/HVC calls that are compatible with SMC calling convention. Signed-off-by: Volodymyr Babchuk Acked-by: Julien Grall Acked-by: Jan Beulich --- diff --git a/xen/common/kernel.c b/xen/common/kernel.c index 94fdf5c60a..8d137c58fb 100644 --- a/xen/common/kernel.c +++ b/xen/common/kernel.c @@ -394,6 +394,9 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg) (1U << XENFEAT_auto_translated_physmap); if ( is_hardware_domain(d) ) fi.submap |= 1U << XENFEAT_dom0; +#ifdef CONFIG_ARM + fi.submap |= (1U << XENFEAT_ARM_SMCCC_supported); +#endif #ifdef CONFIG_X86 switch ( d->guest_type ) { diff --git a/xen/include/public/features.h b/xen/include/public/features.h index 2110b04554..1a989b8bf9 100644 --- a/xen/include/public/features.h +++ b/xen/include/public/features.h @@ -102,6 +102,9 @@ /* Guest can use XENMEMF_vnode to specify virtual node for memory op. */ #define XENFEAT_memory_op_vnode_supported 13 +/* arm: Hypervisor supports ARM SMC calling convention. */ +#define XENFEAT_ARM_SMCCC_supported 14 + #define XENFEAT_NR_SUBMAPS 1 #endif /* __XEN_PUBLIC_FEATURES_H__ */